package com.dd.controller;

import com.dd.model.OtherDataStatics;
import com.dd.service.OtherDataStaticsService;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.stage.Stage;
import java.util.List;

/*`OtherDataStaticsController` 是 JavaFX 应用中的一个控制器类，主要用于“其他统计数据”页面的数据展示和交互。它的主要功能包括：

1. **初始化表格**：在 `initialize()` 方法中，将“其他统计数据”的各个字段（项目、数值）绑定到 TableView 的对应列上。
2. **加载数据**：通过 `OtherDataStaticsService` 获取“其他统计数据”，并将其显示在表格中。
3. **关闭窗口**：提供 `handleClose()` 方法，允许用户关闭当前统计窗口。

---

**总结**：  
这个类就是“其他统计数据页面”的控制器，负责把各项统计数据加载并展示在表格里，并提供关闭窗口的功能。
*/
public class OtherDataStaticsController {
    @FXML
    private TableView<OtherDataStatics> otherTable;
    @FXML
    private TableColumn<OtherDataStatics, String> itemCol;
    @FXML
    private TableColumn<OtherDataStatics, String> valueCol;

    private final OtherDataStaticsService otherDataStaticsService = new OtherDataStaticsService();

    @FXML
    public void initialize() {
        itemCol.setCellValueFactory(new PropertyValueFactory<>("item"));
        valueCol.setCellValueFactory(new PropertyValueFactory<>("value"));
        loadTableData();
    }

    private void loadTableData() {
        List<OtherDataStatics> data = otherDataStaticsService.getOtherDataStatics();
        ObservableList<OtherDataStatics> obsList = FXCollections.observableArrayList(data);
        otherTable.setItems(obsList);
    }

    @FXML
    private void handleClose() {
        Stage stage = (Stage) otherTable.getScene().getWindow();
        stage.close();
    }
} 

